%######***********#*++**###***********#**####**#####****************#
#####************###+++**##****+++++++*++*##*##**********************
###****#*********####**##%#*******++**+**###*********+++++++++++++++*
##****************####***********************+++++++++++++*+++++++++*
#***********#******#*=-===+************************************+*+++*
#******************++====+#+*###***********+***+++++++++++++++++++++*
##*****************#*+===****##************************+=************
##****************%#*+===*####%##************************************
***************++*#***+++*###**#*++*********************************#
**+*********+++++***+++++++%%**%+++++++++++++++++++++++++***++++++++*
*++***********+++**+******+##*####*===+++++++++==+++++++++++++++++++*
*++************+*****####**##*++**###**+==++++++=+++++++++++++++++++*
*+******************+***++++*****++**+++++====++++++++++++++++++++++*
****************#****++++++++++****+++++++++++====++++++++++++++++++*
***************##******++++++++++*****+++++++++++=====++++++++++++++*
***************##********++++++*+++*****++++++++++++==--==++++++++++*
***************#***********++++++++++*****++++++++++++++==-==+++++++*
*******************************+++++++++****+++++++++++++++==---=+++*
**************#***************++++++++++++******+++++++++++++++==--=+
***********************************+++++++***###***++++++++++++++++=+
************************************++++++*****##*********++++++++++*
*************#************************++++++++++*******+++++++++++++*
############%%%%%%%%%%%###%%%######################%%################